#include <cmath>
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <map>
#include <set>
#include <cstring>
#include<iomanip>
#define endl "\n"
using namespace std;
bool pan[10];
char ch[10][10];
int fangxiang[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int n,k,len=0,kk=0;
void dfs(int x)
{
    if(len==k)
    {
        kk++;
        return ;
    }
    if(x==n)
    {
        return ;
    }
    int i=0;
    for(;i<n;i++)
    {
        if(ch[x][i]=='#'&&pan[i]==0)//&&x<n-1)
        {
            len++;
            pan[i]=1;
            dfs(x+1);
            len--;
            pan[i]=0;
        }

    }
    //if(i==n&&x<n-1)

        dfs(x+1);

}
int main()
{
	while(cin>>n>>k)
	{
	    if(n==-1&&k==-1)
        {
            break;
        }
        kk=0;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			cin>>ch[i][j];
		}
	}
        dfs(0);
        cout<<kk<<endl;
	}

    return 0;
}
